import { createWebHistory, createRouter } from 'vue-router'
import routes from './route'
import { useUserStore } from '@/store/userStore'
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'
import '@/styles/nprogress.css'
const router = createRouter({
    history: createWebHistory(),
    routes,
})



// 配置 NProgress
NProgress.configure({
    showSpinner: false, // 不显示旋转器
    minimum: 0.1, // 最小进度
    speed: 200, // 动画速度
    trickleSpeed: 200, // 自动增长速度
    easing: 'ease', // 缓动函数
    positionUsing: '', // 使用默认位置
    parent: 'body' // 父容器
})

// 路由守卫
router.beforeEach((to, from, next) => {
      NProgress.start()
    console.log('路由守卫触发:', {
        to: to.path,
        from: from.path,
        requiresAuth: to.meta.requiresAuth
    })

    // 获取用户store
    const userStore = useUserStore()
    
    // 检查是否需要认证
    const requiresAuth = to.meta.requiresAuth
    
    if (requiresAuth) {
        // 需要认证的页面
        const token = userStore.token || localStorage.getItem('token')
        
        if (token) {
            console.log('✅ 用户已认证，允许访问:', to.path)
            next()
        } else {
            console.log('❌ 用户未认证，重定向到登录页')
            next('/login')
        }
    } else {
        // 不需要认证的页面（如登录页、404页）
        console.log('✅ 页面无需认证，允许访问:', to.path)
        next()
    }
})

// 路由后置守卫
router.afterEach((to) => {
      NProgress.done()
    // 设置页面标题
    if (to.meta.title) {
        document.title = `${to.meta.title} - 地图系统`
    }
    
    console.log('页面加载完成:', to.path)
})

export default router